package com.atguigu.sort;

import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;

//插入排序
public class InsertSort {

    public static void main(String[] args) {
        int arr[] = new int[80000];
        for (int i=0;i<80000;i++){
            arr[i] = (int) (Math.random() * 8000000);
        }
        Date date1 = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY/MM/dd HH:mm:ss.SSS");
        String format = simpleDateFormat.format(date1);
        System.out.println("遍历前的时间"+format);
        insertSort(arr);
        Date date2 = new Date();
        String format1 = simpleDateFormat.format(date2);
        System.out.println("遍历后的时间"+format1);
    }

    public static void insertSort(int arr[]){
        int temp = 0;
        int j = 0;
        for (int i=1;i<arr.length;i++){
            //要插入的数
            temp = arr[i];
            //要插入数的前一个位置
            j = i-1;
            //找到要插入的位置，若不是合适的位置，相关位置的数据往后移动
            while (j>=0 && temp < arr[j]){
                arr[j+1] = arr[j];
                j--;
            }

            //若没有任何移动
            if (i != j+1){
                arr[j+1]  = temp;
            }

        }
    }
}
